﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

void testReference()
{
	int a = 10;
	//1.引用的基本语法，Type &别名 = 原名；
	int& b = a;

	b = 20;
	cout << "a =" << a << endl;//a =20
	cout << "b =" << b << endl;//b =20

	//2.引用必须初始化；
	//int& c;
	int c = 30;
	//3.引用初始化后，就不可以修改了；
	int& d = c;
	int e = 40;
	//4.赋值；
	d = e;


	int arr[10];
	for (int i = 0; i < 10; ++i)
	{
		arr[i] = i;
	}
	//5.对数组建立引用，给数组起别名；
	int(&pArr)[10] = arr;
	for (int i = 0; i < 10; ++i)
	{
		cout << pArr[i] << "  ";//0  1  2  3  4  5  6  7  8  9
	}
	cout << endl;

	//6.对数组建立引用，第二种方式起别名；
		//一个具有10个元素的int类型的数组ARRYREF；
	typedef int(ARRAYREF)[10];
	ARRAYREF& pArr2 = arr;
	for (int i = 0; i < 10; ++i)
	{
		cout << pArr2[i] << "  ";//0  1  2  3  4  5  6  7  8  9
	}
	cout << endl;
}

//main241：引用的基本语法
int main241()
{
	testReference();

	system("pause");
	return EXIT_SUCCESS;
}